home *** CD-ROM | disk | FTP | other *** search
-
-
-
- CCCCVVVVCCCCOOOONNNNNNNNEEEECCCCTTTT((((1111MMMM)))) CCCCVVVVCCCCOOOONNNNNNNNEEEECCCCTTTT((((1111MMMM))))
-
-
-
- NNNNAAAAMMMMEEEE
- cvconnect - The WorkShop Debugger Connection Helper
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- /usr/lib/WorkShop/cvconnect -h host -n pcsnum -p port
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _c_v_c_o_n_n_e_c_t is invoked by the WorkShop Debugger and Performance tools in
- order to establish a secure connection to the debug server, _c_v_p_c_s. It is
- not normally run by users.
-
- SSSSEEEECCCCUUUURRRRIIIITTTTYYYY
- The WorkShop tools provide access which is a subset of that provided by
- _r_s_h(1). Users may debug or run performance experiments on processes on
- their own host, or on any other host in the connected network, subject to
- certain constraints. In all cases, the access rights granted to the
- session are those of the user ID of the person who begins the session, as
- granted to that UID by the system where the target process actually runs.
-
- When the host where the command is typed (the "user" host) is the same as
- the host where the target program actually runs (the "target" host),
- access is always granted.
-
- When the user host is not the same as the target host ("remote"
- debugging), an authentication procedure is conducted before allowing the
- session to begin. At the user's end, this procedure is managed by
- _c_v_c_o_n_n_e_c_t, which is a set-UID program in order to ensure the security of
- this negotiation.
-
- AAAAcccccccceeeessssssss
- The rights granted are always those of the user, as determined by the
- numeric user ID. For a remote debugging session, these rights are
- granted according to the following authentication protocol:
-
- 1) _c_v_c_o_n_n_e_c_t initiates a connection to the WorkShop Debugger daemon,
- _c_v_p_c_s_d.
-
- 2) The daemon checks _c_v_c_o_n_n_e_c_t'_s source port. If the port is not in
- the range 512-1023, the daemon aborts the connection.
-
- 3) The server checks the client's source address and requests the
- corresponding host name (see _g_e_t_h_o_s_t_b_y_a_d_d_r(3N), _h_o_s_t_s(4), and
- _n_a_m_e_d(1M)). If the hostname cannot be determined, the connection is
- aborted.
-
- 4) The daemon confirms that the numeric UID in use by _c_v_c_o_n_n_e_c_t is
- defined on the daemon's system, using _g_e_t_p_w_u_i_d(3).
-
- 5) The daemon then tries to validate the user using _r_u_s_e_r_o_k(3N), which
- uses the file /_e_t_c/_h_o_s_t_s._e_q_u_i_v and the ._r_h_o_s_t_s file found in the
- user's home directory. If the user is not the super-user, (user id
- 0), the file /_e_t_c/_h_o_s_t_s._e_q_u_i_v is consulted for a list of hosts
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- CCCCVVVVCCCCOOOONNNNNNNNEEEECCCCTTTT((((1111MMMM)))) CCCCVVVVCCCCOOOONNNNNNNNEEEECCCCTTTT((((1111MMMM))))
-
-
-
- considered ``equivalent''. If the client's host name is present in
- this file, the authentication is considered successful. If the
- lookup fails, or the user is the super-user, then the file ._r_h_o_s_t_s
- in the home directory of the remote user is checked for the machine
- name and identity of the user on the client's machine. If this
- lookup fails, the connection is terminated. The -l option prevents
- _r_u_s_e_r_o_k(3N) from doing any validation based on the user's
- ``.rhosts'' file, unless the user is the superuser.
-
- 6) If necessary, the daemon creates a call socket, forks, sets its UID
- and groups to those of _c_v_c_o_n_n_e_c_t and execs _c_v_p_c_s (passing along -l
- and -L flags, if any), and records the port ID of the call socket.
- If the incoming request is from the same host, user, and debugging
- session as an already-running _c_v_p_c_s, the daemon merely looks up this
- call socket port number. Either way, the call socket port ID is
- then returned to _c_v_c_o_n_n_e_c_t.
-
- 7) _C_v_c_o_n_n_e_c_t then calls up _c_v_p_c_s using the call socket ID returned to
- it from _c_p_v_c_s_d. The same authentication steps are performed again,
- with the additional requirement that the UID of _c_v_c_o_n_n_e_c_t must match
- the UID _c_v_p_c_s inherited from _c_v_p_c_s_d.
-
- 8) If the authentication passes, _c_v_p_c_s acknowledges the connection.
- _C_v_c_o_n_n_e_c_t sends it the port ID originally provided it in its
- options, on which the true client has been awaiting a call. _C_v_p_c_s
- connects to the true client, and debugging proceeds.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- cvd(1), cvperf(1), cvpcsd(1m), cvpcs(1m) gethostbyaddr (3N), hosts (4),
- named (1M)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-